// 重组环境配置文件
const fs = require('fs');

// .env - 公共配置（不敏感，可以提交到 git）
const envContent = `# 公共环境配置
# 此文件包含所有环境的公共配置，不包含敏感信息，可以提交到版本控制
# 敏感配置请放在 .env.dev 或 .env.prd 文件中

# 应用配置
NODE_ENV=dev
PORT=3000

# MySQL 数据库配置（非敏感部分）
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_DATABASE=member_management
MYSQL_CONNECTION_LIMIT=10

# Redis 缓存配置（非敏感部分）
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0

# JWT 配置（非敏感部分）
JWT_EXPIRES_IN=7d

# Token 配置（单位：秒，7天 = 604800秒）
TOKEN_EXPIRES_IN=604800

# 速率限制配置
# RATE_LIMIT_MAX: 1分钟内最多请求次数
# RATE_LIMIT_WINDOW: 时间窗口（单位：毫秒，60000 = 1分钟）
RATE_LIMIT_MAX=10
RATE_LIMIT_WINDOW=60000

# 日志级别配置
# 可选值: debug, info, warn, error
LOG_LEVEL=info
`;

// .env.dev - 开发环境敏感配置
const envDevContent = `# 开发环境敏感配置
# ⚠️ 此文件包含敏感信息，不应提交到版本控制
# 请根据实际情况修改以下配置

# MySQL 数据库敏感配置
MYSQL_USER=root
MYSQL_PASSWORD=

# Redis 缓存敏感配置
REDIS_PASSWORD=

# JWT 认证敏感配置
JWT_SECRET=dev-secret-key-change-me

# 开发环境特定配置
MYSQL_DATABASE=member_management_dev
LOG_LEVEL=debug
`;

// .env.prd - 生产环境敏感配置
const envPrdContent = `# 生产环境敏感配置
# ⚠️ 此文件包含敏感信息，不应提交到版本控制
# ⚠️ 警告：生产环境部署前请务必修改以下敏感配置项：
# - JWT_SECRET: 必须使用强密钥
# - MYSQL_PASSWORD: 数据库密码
# - REDIS_PASSWORD: Redis 密码（如果启用）

# MySQL 数据库敏感配置
MYSQL_USER=root
MYSQL_PASSWORD=

# Redis 缓存敏感配置
REDIS_PASSWORD=

# JWT 认证敏感配置
# ⚠️ 生产环境必须修改为强密钥，建议使用随机生成的32位以上字符串
JWT_SECRET=change-this-in-production-use-strong-secret-key

# 生产环境特定配置
MYSQL_DATABASE=member_management
MYSQL_CONNECTION_LIMIT=20
LOG_LEVEL=info
`;

// 写入文件
fs.writeFileSync('.env', envContent, 'utf8');
console.log('✅ 已创建 .env（公共配置，可提交）');

fs.writeFileSync('.env.dev', envDevContent, 'utf8');
console.log('✅ 已创建 .env.dev（敏感配置，已忽略）');

fs.writeFileSync('.env.prd', envPrdContent, 'utf8');
console.log('✅ 已创建 .env.prd（敏感配置，已忽略）');

console.log('\n✅ 环境配置文件重组完成！');

